﻿Imports UTNComputers.validaciones
Public Class actualizarStock

    Private Sub actualizarStock_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        LimpiarFormulario()

    End Sub

    Private Sub btnConsulta_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConsulta.Click
        Dim Producto As New clsCatalogo()
        Dim ProductoDao As New daoCatalogo()
        If txtCod.Text.Trim.Length > 0 Then 'Si ingreso un codigo de articulo busco por ese codigo
            Producto = ProductoDao.TraeArticulo(Convert.ToInt32(txtCod.Text.Trim))
            If Producto.Prod_Id > 0 Then
                AsignaCampos(Producto)
            Else
                MessageBox.Show("No se encontró ningun producto con codigo: " & txtCod.Text.Trim, "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information)
            End If
        Else ''SI no hay codigo de articulo busco por descripcion
            Dim ListaProductos As New List(Of clsCatalogo)
            If txtNom.Text.Trim.Length > 0 Then ''Si puso nombre busco por nombre
                ListaProductos = ProductoDao.TraeArticulos(txtNom.Text.Trim.ToUpper)
            Else ''Si NO puso nombre todos los articulos
                ListaProductos = ProductoDao.TraeArticulos()
            End If

            If ListaProductos.Count > 1 Then ''Encontro mas de un articulo
                TraeConsulta(ListaProductos)
            ElseIf ListaProductos.Count = 1 Then '' Encontro un solo articulo
                Producto = ListaProductos.Item(0)
                AsignaCampos(Producto)
            Else ''No encontro ningun articulo
                MessageBox.Show("No se encontró ningun producto ", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information)
            End If
        End If
        Producto.Dispose()
        ProductoDao.Dispose()
    End Sub
    Private Sub LimpiarFormulario()
        txtCod.Text = ""
        txtCod.Enabled = True
        txtNom.Text = ""
        txtNom.Enabled = True

        txtCant.Text = "0"
        txtCosto.Text = "0"
        txtMarca.Text = ""
        txtMod.Text = ""
        txtProv.Text = ""
        txtTipo.Text = ""
        txtFechaAlta.Text = ""

        txtCant.Enabled = False
        txtCosto.Enabled = False
        txtMarca.Enabled = False
        txtMod.Enabled = False
        txtProv.Enabled = False
        txtTipo.Enabled = False

        btnActualizar.Enabled = False
        btnConsulta.Enabled = True

    End Sub

    Private Sub btnCancela_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancela.Click
        LimpiarFormulario()
    End Sub

    Private Sub btnActualizar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnActualizar.Click
        If Guardar() Then
            btnCancela.Focus()
        End If
    End Sub

    Private Function Guardar() As Boolean
        Dim Producto As New clsCatalogo()
        Dim Dao_Producto As New daoCatalogo()
        Dim Dao_Numerador As New daoNumerador()
        Dim Conf As New clsConfiguraciones()

        Dim dao_Conf As New daoConfiguraciones()
        Conf = dao_Conf.TraeConfiguraciones()
        dao_Conf.Dispose()

        Try
            Producto.Prod_Id = Convert.ToInt32(txtCod.Text.Trim)
            Producto.Cantidad = Convert.ToInt32(txtCant.Text.Trim)
            Producto.Descripcion = txtNom.Text.Trim.ToUpper
            Producto.Costo = Convert.ToDecimal(txtCosto.Text.Trim)
            Producto.Marca = txtMarca.Text.Trim.ToUpper
            Producto.Modelo = txtMod.Text.Trim.ToUpper
            Producto.Proveedor = txtProv.Text.Trim.ToUpper
            Producto.Tipo = txtTipo.Text.Trim.ToUpper
            Producto.Fecha_Ingreso = Convert.ToDateTime(txtFechaAlta.Text.Trim)
            Producto.Cod_Suc = Conf.Cod_Suc

            If Dao_Producto.Modificar(Producto) Then
                MessageBox.Show("El Artículo se a Actualizado Correctamente ", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Return True
            Else
                MessageBox.Show("No se a actualizar el articulo. Comunicar a Sistemas", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Error)
                Return False
            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
        'Empiezo a asignar los datos al producto

        Return True
    End Function

    Private Sub txtCod_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtCod.KeyPress
        validarInt(e)
    End Sub

    Private Sub txtTipo_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtTipo.KeyPress
        validarString(e)
    End Sub

    Private Sub txtCant_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtCant.KeyPress
        validarInt(e)
    End Sub

    Private Sub txtCosto_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtCosto.KeyPress
        validarDouble(e)
    End Sub
    Private Sub AsignaCampos(ByVal Producto As clsCatalogo)
        txtCod.Text = Convert.ToString(Producto.Prod_Id).Trim
        txtCant.Text = Convert.ToString(Producto.Cantidad).Trim
        txtNom.Text = Producto.Descripcion.Trim.ToUpper
        txtCosto.Text = Convert.ToString(Producto.Costo).Trim
        txtMarca.Text = Producto.Marca.Trim.ToUpper
        txtMod.Text = Producto.Modelo.Trim.ToUpper
        txtProv.Text = Producto.Proveedor.Trim.ToUpper
        txtTipo.Text = Producto.Tipo.Trim.ToUpper
        txtFechaAlta.Text = Convert.ToString(Producto.Fecha_Ingreso).Trim
        txtCod.Enabled = False

        txtCant.Enabled = True
        txtCosto.Enabled = True
        txtMarca.Enabled = True
        txtMod.Enabled = True
        txtProv.Enabled = True
        txtTipo.Enabled = True

        btnActualizar.Enabled = True
        btnConsulta.Enabled = False
    End Sub
    Private Sub TraeConsulta(ByVal ListaProductos As List(Of clsCatalogo))
        consultaCatalogo.ModoAcceso = "ACTUALIZA STOCK"
        consultaCatalogo.grdCatalogo.DataSource = ListaProductos

        consultaCatalogo.grdCatalogo.Columns(0).DataPropertyName = "Prod_Id"
        consultaCatalogo.grdCatalogo.Columns(1).DataPropertyName = "Descripcion"
        consultaCatalogo.grdCatalogo.Columns(2).DataPropertyName = "Marca"
        consultaCatalogo.grdCatalogo.Columns(3).DataPropertyName = "Modelo"
        consultaCatalogo.grdCatalogo.Columns(4).DataPropertyName = "Tipo"
        consultaCatalogo.grdCatalogo.Columns(5).DataPropertyName = "Costo"
        consultaCatalogo.grdCatalogo.Columns(6).DataPropertyName = "Cantidad"
        consultaCatalogo.grdCatalogo.Columns(7).DataPropertyName = "Proveedor"
        consultaCatalogo.grdCatalogo.Columns(8).DataPropertyName = "Fecha_Ingreso"
        consultaCatalogo.grdCatalogo.Columns(9).DataPropertyName = "Cod_Suc"

        consultaCatalogo.grdCatalogo.Columns(0).HeaderText = "Codigo"
        consultaCatalogo.grdCatalogo.Columns(1).HeaderText = "Descripcion"
        consultaCatalogo.grdCatalogo.Columns(2).HeaderText = "Marca"
        consultaCatalogo.grdCatalogo.Columns(3).HeaderText = "Modelo"
        consultaCatalogo.grdCatalogo.Columns(4).HeaderText = "Tipo"
        consultaCatalogo.grdCatalogo.Columns(5).HeaderText = "Costo"
        consultaCatalogo.grdCatalogo.Columns(6).HeaderText = "Stock"
        consultaCatalogo.grdCatalogo.Columns(7).HeaderText = "Proveedor"
        consultaCatalogo.grdCatalogo.Columns(8).HeaderText = "Fecha Alta"
        consultaCatalogo.grdCatalogo.Columns(9).HeaderText = "Sucursal"

        consultaCatalogo.grdCatalogo.Columns(9).Visible = False

        consultaCatalogo.MdiParent = Me.MdiParent
        Me.Enabled = False
        consultaCatalogo.Show()
    End Sub

End Class